package com.tencreat.service.mall;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

import com.tencreat.common.core.HttpResult;
import com.tencreat.common.core.domain.model.LoginUser;
import com.tencreat.common.core.domain.model.ReqIdParam;
import com.tencreat.common.core.domain.model.ReqIdsParam;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tencreat.domain.mall.MallFeedback;
import com.tencreat.domain.mall.dto.MallFeedbackDTO;
import com.tencreat.domain.mall.vo.FeedBackStatisticsVO;

/**
 * 意见反馈Service接口
 *
 * @author tencreat
 * @date 2021-08-13
 */
public interface IMallFeedbackService extends IService<MallFeedback> {
    /**
     * 查询意见反馈
     *
     * @param id 意见反馈ID
     * @return 意见反馈
     */
    public MallFeedback selectMallFeedbackById(ReqIdParam id);

    /**
     * 查询意见反馈列表
     *
     * @param mallFeedback 意见反馈
     * @return 意见反馈集合
     */
    public List<MallFeedback> selectMallFeedbackList(MallFeedback mallFeedback);

    /**
     * 新增意见反馈
     *
     * @param mallFeedback 意见反馈
     * @return 结果
     */
    public int insertMallFeedback(MallFeedback mallFeedback);

    /**
     * 修改意见反馈
     *
     * @param mallFeedback 意见反馈
     * @return 结果
     */
    public int updateMallFeedback(MallFeedback mallFeedback);

    /**
     * 批量删除意见反馈
     *
     * @param ids 需要删除的意见反馈ID
     * @return 结果
     */
    public int deleteMallFeedbackByIds(ReqIdsParam ids);

    /**
     * 删除意见反馈信息
     *
     * @param id 意见反馈ID
     * @return 结果
     */
    public int deleteMallFeedbackById(ReqIdParam id);

    /**
     *用户添加意见反馈信息
     */
    HttpResult<Boolean> addFeedBack(MallFeedbackDTO mallFeedbackVO, LoginUser loginUser) throws InvocationTargetException, IllegalAccessException;

    /**
     * 用户查看反馈记录
     */
    HttpResult<List<MallFeedback>> getListByUser(LoginUser loginUser);

    FeedBackStatisticsVO queryFeedBackStatistics();
}
